# This file is part of Sonedyan.
#
# Sonedyan is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation;
# either version 3 of the License, or (at your option) any
# later version.
#
# Sonedyan is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE.  See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public.
# If not, see <http://www.gnu.org/licenses/>.
#
# Copyright (C) 2009-2012 Jimmy Dubuisson <jimmy.dubuisson@gmail.com>

# compute mean correlation of specified set of time series
#
# NB: this script is to be used with '5c_normalize-filtered-1grams-subset.py'

# load the subset of 1grams
words <- read.table("core-words.txt")

# load matrix of core normalized time series (subset of 1grams)
mat <- read.table("normalized-core-words.csv", header = FALSE)

# get transpose of matrix
mat2 <- t(mat)
# compute correlation matrix
cormat <- cor(mat2, method="spearman")

# set cormat row/col names
rownames(cormat) <- words$V1
colnames(cormat) <- words$V1

# visualize correlation matrix
#print(cormat)
#symnum(cormat)

nrows <- nrow(mat)

# remove diagonal 1 entries (optional)
#id <- diag(rep(1,nrows))
#cormat <- cormat - id

print(paste("Correlation matrix mean: ", mean(cormat)))

rmeans <- rowMeans(cormat)
sorted <- sort(rmeans)

# display sorted means of each row
for (i in 1:length(sorted))
{
	print(paste("Mean ", names(sorted)[i], " :", sorted[i]))
}

